home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / meltdown.lha / BOB-SOURCE / bob.bak next >
Encoding:
Text File  |  1988-07-19  |  12.5 KB  |  446 lines

  1. *****************************************************************************
  2. *                                                                           *
  3. *         Big Blit Bob Size 48*80 16 Cols Big Or What                 *
  4. *                                                                           *
  5. *  Start Date : 4/3/91                                                      *
  6. * Last Update : 4/3/91                                                      *
  7. *                                  Code : Melt Down *
  8. *                                                                           *
  9. *****************************************************************************
  10.  
  11. ; Include the macros
  12.  
  13.     Incdir    Df1:
  14.     Include    Source/Macro
  15.  
  16. *****************************************************************************
  17.  
  18. ; Dont forget to use chip ram
  19.  
  20.     Chip
  21.     
  22. *****************************************************************************
  23.  
  24. ; Kill the operating system for good mesure
  25.  
  26.     Kill        
  27.     
  28. *****************************************************************************
  29.  
  30. ; Load custom and set up copper list
  31.  
  32.     Lea    Custom,A5
  33.     Move.l    #Copper,Cop1lch(a5)
  34.     
  35. *****************************************************************************
  36.  
  37. ; Clear Some Memory
  38.  
  39.     Blitwait
  40.     Move.l    #$70000,Bltdpth(a5)
  41.     Move.l    #0,Bltafwm(a5)
  42.     Move.w    #0,Bltdmod(a5)
  43.     Move.l    #$01000000,Bltcon0(a5)
  44.     Move.w    #512*64+40,Bltsize(a5)
  45.  
  46. *****************************************************************************
  47.  
  48. ; Main routine here
  49.  
  50. Mouse
  51.     Move.l    $dff004,d2
  52.     And.l    #$1ff00,d2    
  53.     Cmp.l    #$100,d2
  54.     Bne.s    Mouse
  55.     Eor.w    #$7e00,ScreenPtr+2
  56.     Eor.w    #$7e00,Cop1l+2
  57.     Eor.w    #$7e00,Cop2l+2
  58.     Eor.w    #$7e00,Cop3l+2
  59.     Eor.w    #$7e00,Cop4l+2
  60.     Bsr    Clear
  61.     Bsr    DoBobs
  62.     Bsr    DoCop
  63.     Bsr    UpDate
  64.     Tstmice    Mouse                ; Pressed the mouse
  65.     
  66. *****************************************************************************
  67.  
  68. ; Return operating system and go back to user
  69.  
  70.     Heal
  71.     Clr.l    D0                ; No error
  72.     Rts
  73.     
  74. *****************************************************************************
  75.  
  76. Clear
  77.     Blitwait                ; Blitter Nasty But Why Do
  78.     Move.l    #$01000000,Bltcon0(a5)        ; Clear
  79.     Move.w    #$0000,Bltdmod(a5)        ; Skip No Bytes
  80.     Move.l    ScreenPtr,A1
  81.     Move.l    a1,Bltdpth(A5)            ; Set Dest
  82.     Move.l    #-1,Bltafwm(a5)            ; Use All Bits
  83.     Move.w    #200*64+40,Bltsize(a5)        ; Fill Half Screen
  84.     Movem.l    a0-a6/d0-d7,-(a7)        ; Save The Regs
  85.     Movem.l    RegFiller(pc),a1-a6/d0-d7    ; Clear The Regs
  86.     Move.l    ScreenPtr,A0
  87.     Add.l    #32000,A0
  88.  
  89. ; 16000/56 = 285.14 Rnd Up = 286
  90.     Rept    286                ; Rept it 58 times
  91.     Movem.l    a1-a6/d0-d7,-(a0)        ; Clear 56 Butes
  92.     Endr                    ; End repeat
  93.     Movem.l    (a7)+,a0-a6/d0-d7        ; Restor Regs
  94.     Rts
  95. RegFiller
  96.     Dcb.l    16,0
  97.     Rts
  98.     
  99. *****************************************************************************
  100.  
  101. DoBobs
  102.     Blitwait
  103.     Move.w    #32,Bltdmod(a5)
  104.     Move.w    #32,Bltcmod(a5)
  105.     Move.w    #-2,Bltamod(a5)
  106.     Move.w    #-2,Bltbmod(a5)
  107.     Move.l    #$ffff0000,Bltafwm(a5)
  108.     Move.l    #BobsMsk,Bltapth(a5)
  109.     Move.l    #Bobs,Bltbpth(a5)
  110.     Move.w    #320*64+4,d6
  111.     Lea    BobForm1+4,A0
  112.     Lea    Shifts,A1
  113.     Lea    Xsin,A2
  114.     Lea    Bltcon0(a5),A3
  115.     Lea    Bltcpth(a5),A4
  116.     Lea    Bltsize(a5),A6
  117.     Lea    Bltdpth(a5),a5
  118.     Move.l    ScreenPtr,d7
  119.     Move.l    #$200,d2
  120.     Rept    5    
  121.     Move.l    d7,d1
  122.     Move.w    (a0)+,D0            ; X
  123.     Move.w    (a2,d0),d0
  124.     Add.w    (a1,d0),d1
  125.     Move.l    2(a1,d0),(A3)
  126.     Move.w    (a0)+,D0            ; Y
  127.     Add.w    D2,D0
  128.     Add.w    (A2,d0),d1            ; Add y
  129.     Move.l    d1,(a4)
  130.     Move.l    d1,(a5)
  131.     Move.w    d6,(a6)
  132.     Endr
  133.     Lea    Custom,a5
  134.     Rts
  135.     
  136. StShift    Macro
  137.     Dc.w    \1,$0fca,$0000
  138.     Dc.w    \1,$1fca,$1000
  139.     Dc.w    \1,$2fca,$2000
  140.     Dc.w    \1,$3fca,$3000
  141.     Dc.w    \1,$4fca,$4000
  142.     Dc.w    \1,$5fca,$5000
  143.     Dc.w    \1,$6fca,$6000
  144.     Dc.w    \1,$7fca,$7000
  145.     Dc.w    \1,$8fca,$8000
  146.     Dc.w    \1,$9fca,$9000
  147.     Dc.w    \1,$afca,$a000
  148.     Dc.w    \1,$bfca,$b000
  149.     Dc.w    \1,$cfca,$c000
  150.     Dc.w    \1,$dfca,$d000
  151.     Dc.w    \1,$efca,$e000
  152.     Dc.w    \1,$ffca,$f000
  153.     Endm
  154. Shifts
  155.     StShift    0
  156.     StShift    2
  157.     StShift    4
  158.     StShift    6
  159.     StShift    8
  160.     StShift    10
  161.     StShift    12
  162.     StShift    14
  163.     StShift    16
  164.     StShift    18
  165.     StShift    20
  166.     StShift    22
  167.     StShift    24
  168.     StShift    26
  169.     StShift    28
  170.     StShift    30
  171.     StShift    32
  172.     StShift    34
  173.     StShift    36
  174.     StShift    38
  175.     StShift    40
  176.     
  177. *****************************************************************************
  178.  
  179. DoCop
  180.     Lea    custom,a5
  181.     Blitwait    
  182.     Move.l    #Col1,Bltapth(a5)
  183.     Move.l    #$09f00000,Bltcon0(a5)
  184.     Move.l    #-1,Bltafwm(A5)
  185.     Move.w    #0,Bltamod(A5)
  186.     Move.w    #42,Bltdmod(A5)
  187.     Move.w    #72*64+1,D3
  188.     Move.l    #CopStart+6+(6*44),A2
  189.     Lea    BobForm1+4,a0
  190.     Lea    YCopSin,a1
  191.     Move.l    #4,D1
  192.  
  193.     Rept    5
  194.     Move.w    2(A0),d0
  195.     Move.w    (a1,d0),d0
  196.     Add.w    d0,a2
  197.     Move.l    A2,Bltdpth(a5)
  198.     Move.w    d3,Bltsize(a5)
  199.     Sub.w    d0,a2
  200.     Add.w    D1,A2
  201.  
  202.     Move.w    2(A0),d0
  203.     Move.w    (a1,d0),d0
  204.     Add.w    d0,a2
  205.     Move.l    A2,Bltdpth(a5)
  206.     Move.w    d3,Bltsize(a5)
  207.     Sub.w    d0,a2
  208.     Add.w    D1,A2
  209.  
  210.     Add.w    D1,A0
  211.     Endr
  212.  
  213.     Rts
  214.  
  215. *****************************************************************************
  216.  
  217. ; Up Date Shit
  218.  
  219. UpDate
  220.     Lea    BobForm1,A0
  221.     Move.l    (a0)+,d7
  222.     Move.l    #$01fe01fe,D6
  223.     Rept    5
  224.     Add.l    d7,(a0)
  225.     And.l    d6,(a0)+
  226.     Endr    
  227.     Rts
  228.  
  229. *****************************************************************************
  230.  
  231. ; All copper list after here
  232.  
  233. Copper
  234.  
  235.     Spr_Off                    ; Switch sprites off
  236.     Cmove    $2c81,Diwstrt
  237.     Cmove    $2cc1,Diwstop
  238.     Cmove    $0038,Ddfstrt
  239.     Cmove    $00d0,Ddfstop
  240.     Cmove    $0078,Bpl1mod            
  241.     Cmove    $0078,Bpl2mod
  242.     dc.w    $0180,$0000,$0182,$0fff,$0184,$0ddd,$0186,$0ccc
  243.     dc.w    $0188,$0bbb,$018a,$0999,$018c,$0888,$018e,$0666
  244.     dc.w    $0190,$0555,$0192,$0333,$0194,$0222,$0196,$0540
  245.     dc.w    $0198,$0750,$019a,$0960,$019c,$0b70,$019e,$0d90
  246.     Cmove    $0007,Bpl1pth
  247. Cop1l
  248.     Cmove    $0000,Bpl1ptl
  249.     Cmove    $0007,Bpl2pth
  250. Cop2l
  251.     Cmove    $0028,Bpl2ptl
  252.     Cmove    $0007,Bpl3pth
  253. Cop3l
  254.     Cmove    $0050,Bpl3ptl
  255.     Cmove    $0007,Bpl4pth
  256. Cop4l
  257.     Cmove    $0078,Bpl4ptl
  258.     Cmove    $4200,Bplcon0
  259.     Cwait    40,0
  260.     Cmove    $000f,Color00
  261.     Cwait    41,0
  262.     Cmove    $0000,Color00
  263. A    Set    42
  264. CopStart
  265.     Rept    203
  266.     Cwait    a,0
  267.     Cmove    $000,Color01        
  268.     Cmove    $000,Color02    
  269.     
  270.     Cmove    $000,Color03
  271.     Cmove    $000,Color04        
  272.  
  273.     Cmove    $000,Color05        
  274.     Cmove    $000,Color06    
  275.  
  276.     Cmove    $000,Color07
  277.     Cmove    $000,Color08
  278.  
  279.     Cmove    $000,Color09
  280.     Cmove    $000,Color10
  281. A    Set    a+1
  282.     Endr        
  283.  
  284.     Cwait    245,0
  285.     Cmove    $0200,Bplcon0
  286.     Cmove    $000f,Color00
  287.     Cwait    246,0
  288.     Cmove    $0000,Color00
  289.     Endcop
  290.  
  291. *****************************************************************************
  292.  
  293. ScreenPtr
  294.     dc.l    $70000
  295.     
  296. *****************************************************************************
  297.  
  298. Col1
  299. SetCol    Macro
  300.     Dc.w    $0000&\1,$0000&\1,$0111&\1,$0111&\1,$0222&\1,$0222&\1,$0333&\1,$0333&\1
  301.     Dc.w    $0444&\1,$0444&\1,$0555&\1,$0555&\1,$0666&\1,$0666&\1,$0777&\1,$0777&\1
  302.     Dc.w    $0888&\1,$0888&\1,$0999&\1,$0999&\1,$0aaa&\1,$0aaa&\1,$0bbb&\1,$0bbb&\1
  303.     Dc.w    $0ccc&\1,$0ccc&\1,$0ddd&\1,$0ddd&\1,$0eee&\1,$0eee&\1,$0fff&\1,$0fff&\1
  304.     Dc.w    $0fff&\1,$0fff&\1,$0fff&\1,$0fff&\1,$0fff&\1,$0fff&\1,$0fff&\1,$0fff&\1
  305.     Dc.w    $0fff&\1,$0fff&\1,$0eee&\1,$0eee&\1,$0ddd&\1,$0ddd&\1,$0ccc&\1,$0ccc&\1
  306.     Dc.w    $0bbb&\1,$0bbb&\1,$0aaa&\1,$0aaa&\1,$0999&\1,$0999&\1,$0888&\1,$0888&\1
  307.     Dc.w    $0777&\1,$0777&\1,$0666&\1,$0666&\1,$0555&\1,$0555&\1,$0444&\1,$0444&\1
  308.     Dc.w    $0333&\1,$0333&\1,$0222&\1,$0222&\1,$0111&\1,$0111&\1,$0000&\1,$0000&\1
  309.     Endm
  310.     SetCol    $fff
  311.     SetCol    $f00
  312.     
  313.     SetCol    $fff
  314.     SetCol    $0f0
  315.  
  316.     SetCol    $fff
  317.     SetCol    $00f
  318.  
  319.     SetCol    $fff
  320.     SetCol    $f0f
  321.  
  322.     SetCol    $fff
  323.     SetCol    $0ff
  324.  
  325. *****************************************************************************
  326.  
  327. BobForm1
  328.     Dc.w    2,2                ; Xupdate, Yupdate
  329.     Dc.w    000,250                ; X,Y
  330.     Dc.w    050,200                ; X,Y
  331.     Dc.w    100,150                ; X,Y
  332.     Dc.w    150,100                ; X,Y
  333.     Dc.w    200,050                ; X,Y
  334.  
  335. *****************************************************************************
  336.  
  337. XSin
  338.     dc.w    270*6,270*6,270*6,270*6,269*6,269*6,269*6,268*6
  339.     dc.w    267*6,267*6,266*6,265*6,264*6,263*6,262*6,261*6
  340.     dc.w    260*6,258*6,257*6,256*6,254*6,252*6,251*6,249*6
  341.     dc.w    247*6,245*6,243*6,241*6,239*6,237*6,235*6,233*6
  342.     dc.w    230*6,228*6,226*6,223*6,221*6,218*6,215*6,213*6
  343.     dc.w    210*6,207*6,204*6,202*6,199*6,196*6,193*6,190*6
  344.     dc.w    187*6,184*6,180*6,177*6,174*6,171*6,168*6,165*6
  345.     dc.w    161*6,158*6,155*6,152*6,148*6,145*6,142*6,138*6
  346.     dc.w    135*6,132*6,128*6,125*6,122*6,118*6,115*6,112*6
  347.     dc.w    109*6,105*6,102*6,99*6,96*6,93*6,90*6,86*6
  348.     dc.w    83*6,80*6,77*6,74*6,71*6,68*6,66*6,63*6
  349.     dc.w    60*6,57*6,55*6,52*6,49*6,47*6,44*6,42*6
  350.     dc.w    40*6,37*6,35*6,33*6,31*6,29*6,27*6,25*6
  351.     dc.w    23*6,21*6,19*6,18*6,16*6,14*6,13*6,12*6
  352.     dc.w    10*6,9*6,8*6,7*6,6*6,5*6,4*6,3*6
  353.     dc.w    3*6,2*6,1*6,1*6,1*6,0*6,0*6,0*6
  354.     dc.w    0*6,0*6,0*6,0*6,1*6,1*6,1*6,2*6
  355.     dc.w    3*6,3*6,4*6,5*6,6*6,7*6,8*6,9*6
  356.     dc.w    10*6,12*6,13*6,14*6,16*6,18*6,19*6,21*6
  357.     dc.w    23*6,25*6,27*6,29*6,31*6,33*6,35*6,37*6
  358.     dc.w    40*6,42*6,44*6,47*6,49*6,52*6,55*6,57*6
  359.     dc.w    60*6,63*6,66*6,68*6,71*6,74*6,77*6,80*6
  360.     dc.w    83*6,86*6,90*6,93*6,96*6,99*6,102*6,105*6
  361.     dc.w    109*6,112*6,115*6,118*6,122*6,125*6,128*6,132*6
  362.     dc.w    135*6,138*6,142*6,145*6,148*6,152*6,155*6,158*6
  363.     dc.w    161*6,165*6,168*6,171*6,174*6,177*6,180*6,184*6
  364.     dc.w    187*6,190*6,193*6,196*6,199*6,202*6,204*6,207*6
  365.     dc.w    210*6,213*6,215*6,218*6,221*6,223*6,226*6,228*6
  366.     dc.w    230*6,233*6,235*6,237*6,239*6,241*6,243*6,245*6
  367.     dc.w    247*6,249*6,251*6,252*6,254*6,256*6,257*6,258*6
  368.     dc.w    260*6,261*6,262*6,263*6,264*6,265*6,266*6,267*6
  369.     dc.w    267*6,268*6,269*6,269*6,269*6,270*6,270*6,270*6
  370. YSin
  371.     dc.w    120*160,120*160,120*160,120*160,120*160,120*160,119*160,119*160
  372.     dc.w    119*160,119*160,118*160,118*160,117*160,117*160,116*160,116*160
  373.     dc.w    115*160,115*160,114*160,114*160,113*160,112*160,111*160,111*160
  374.     dc.w    110*160,109*160,108*160,107*160,106*160,105*160,104*160,103*160
  375.     dc.w    102*160,101*160,100*160,99*160,98*160,97*160,96*160,95*160
  376.     dc.w    93*160,92*160,91*160,90*160,88*160,87*160,86*160,84*160
  377.     dc.w    83*160,82*160,80*160,79*160,77*160,76*160,75*160,73*160
  378.     dc.w    72*160,70*160,69*160,67*160,66*160,64*160,63*160,61*160
  379.     dc.w    60*160,59*160,57*160,56*160,54*160,53*160,51*160,50*160
  380.     dc.w    48*160,47*160,45*160,44*160,43*160,41*160,40*160,38*160
  381.     dc.w    37*160,36*160,34*160,33*160,32*160,30*160,29*160,28*160
  382.     dc.w    27*160,25*160,24*160,23*160,22*160,21*160,20*160,19*160
  383.     dc.w    18*160,17*160,16*160,15*160,14*160,13*160,12*160,11*160
  384.     dc.w    10*160,9*160,9*160,8*160,7*160,6*160,6*160,5*160
  385.     dc.w    5*160,4*160,4*160,3*160,3*160,2*160,2*160,1*160
  386.     dc.w    1*160,1*160,1*160,0*160,0*160,0*160,0*160,0*160
  387.     dc.w    0*160,0*160,0*160,0*160,0*160,0*160,1*160,1*160
  388.     dc.w    1*160,1*160,2*160,2*160,3*160,3*160,4*160,4*160
  389.     dc.w    5*160,5*160,6*160,6*160,7*160,8*160,9*160,9*160
  390.     dc.w    10*160,11*160,12*160,13*160,14*160,15*160,16*160,17*160
  391.     dc.w    18*160,19*160,20*160,21*160,22*160,23*160,24*160,25*160
  392.     dc.w    27*160,28*160,29*160,30*160,32*160,33*160,34*160,36*160
  393.     dc.w    37*160,38*160,40*160,41*160,43*160,44*160,45*160,47*160
  394.     dc.w    48*160,50*160,51*160,53*160,54*160,56*160,57*160,59*160
  395.     dc.w    60*160,61*160,63*160,64*160,66*160,67*160,69*160,70*160
  396.     dc.w    72*160,73*160,75*160,76*160,77*160,79*160,80*160,82*160
  397.     dc.w    83*160,84*160,86*160,87*160,88*160,90*160,91*160,92*160
  398.     dc.w    93*160,95*160,96*160,97*160,98*160,99*160,100*160,101*160
  399.     dc.w    102*160,103*160,104*160,105*160,106*160,107*160,108*160,109*160
  400.     dc.w    110*160,111*160,111*160,112*160,113*160,114*160,114*160,115*160
  401.     dc.w    115*160,116*160,116*160,117*160,117*160,118*160,118*160,119*160
  402.     dc.w    119*160,119*160,119*160,120*160,120*160,120*160,120*160,120*160
  403. YCopSin
  404.     dc.w    120*44,120*44,120*44,120*44,120*44,120*44,119*44,119*44
  405.     dc.w    119*44,119*44,118*44,118*44,117*44,117*44,116*44,116*44
  406.     dc.w    115*44,115*44,114*44,114*44,113*44,112*44,111*44,111*44
  407.     dc.w    110*44,109*44,108*44,107*44,106*44,105*44,104*44,103*44
  408.     dc.w    102*44,101*44,100*44,99*44,98*44,97*44,96*44,95*44
  409.     dc.w    93*44,92*44,91*44,90*44,88*44,87*44,86*44,84*44
  410.     dc.w    83*44,82*44,80*44,79*44,77*44,76*44,75*44,73*44
  411.     dc.w    72*44,70*44,69*44,67*44,66*44,64*44,63*44,61*44
  412.     dc.w    60*44,59*44,57*44,56*44,54*44,53*44,51*44,50*44
  413.     dc.w    48*44,47*44,45*44,44*44,43*44,41*44,40*44,38*44
  414.     dc.w    37*44,36*44,34*44,33*44,32*44,30*44,29*44,28*44
  415.     dc.w    27*44,25*44,24*44,23*44,22*44,21*44,20*44,19*44
  416.     dc.w    18*44,17*44,16*44,15*44,14*44,13*44,12*44,11*44
  417.     dc.w    10*44,9*44,9*44,8*44,7*44,6*44,6*44,5*44
  418.     dc.w    5*44,4*44,4*44,3*44,3*44,2*44,2*44,1*44
  419.     dc.w    1*44,1*44,1*44,0*44,0*44,0*44,0*44,0*44
  420.     dc.w    0*44,0*44,0*44,0*44,0*44,0*44,1*44,1*44
  421.     dc.w    1*44,1*44,2*44,2*44,3*44,3*44,4*44,4*44
  422.     dc.w    5*44,5*44,6*44,6*44,7*44,8*44,9*44,9*44
  423.     dc.w    10*44,11*44,12*44,13*44,14*44,15*44,16*44,17*44
  424.     dc.w    18*44,19*44,20*44,21*44,22*44,23*44,24*44,25*44
  425.     dc.w    27*44,28*44,29*44,30*44,32*44,33*44,34*44,36*44
  426.     dc.w    37*44,38*44,40*44,41*44,43*44,44*44,45*44,47*44
  427.     dc.w    48*44,50*44,51*44,53*44,54*44,56*44,57*44,59*44
  428.     dc.w    60*44,61*44,63*44,64*44,66*44,67*44,69*44,70*44
  429.     dc.w    72*44,73*44,75*44,76*44,77*44,79*44,80*44,82*44
  430.     dc.w    83*44,84*44,86*44,87*44,88*44,90*44,91*44,92*44
  431.     dc.w    93*44,95*44,96*44,97*44,98*44,99*44,100*44,101*44
  432.     dc.w    102*44,103*44,104*44,105*44,106*44,107*44,108*44,109*44
  433.     dc.w    110*44,111*44,111*44,112*44,113*44,114*44,114*44,115*44
  434.     dc.w    115*44,116*44,116*44,117*44,117*44,118*44,118*44,119*44
  435.     dc.w    119*44,119*44,119*44,120*44,120*44,120*44,120*44,120*44
  436.     
  437. *****************************************************************************
  438.  
  439. Bobs
  440.     Incbin    Gfx/BigBobs.Bm
  441. BobsMsk
  442.     Incbin    Gfx/BigBobsMsk.Bm
  443.     
  444. *****************************************************************************
  445.  
  446.